package com.girls.dao;

import com.girls.model.Employee;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface EmployeeDao {
    public Employee getEmployeeByID(Integer id);
    //查询一条记录返回一个map
    public Map<String,Object> getEmployeeByIDReturnMap(Integer id);//k-列名 v-列值

    public int updateEmployee(Employee employee);

    public boolean deleteEmployee(Integer id);

    public int insertEmployee(Employee employee);

    public Employee getEmployeeByIDAndEmpName
        /*查询多个参数：
        用注解指定传入多个参数时，mybatis为其封装的map的各个值的key名（默认为1,2,3.......）
        推荐使用，因为这样就可以无视参数的前后位置，否则位置一换就查不出来
         */
            (@Param("id") Integer id,@Param("empName") String empName);

    public Employee getEmployeeByMap(Map<String,Object> map);

    public List<Employee> getAllEmployees();
    //查询多条记录返回一个map
    @MapKey("id")//告诉mybatis哪个列名作为key
    public Map<Integer,Employee> getAllEmployeesReturnMap();//k-该条记录的主键 v-该条记录封装的对象
}
